package test.swing;

import java.io.IOException;

/**
 * @Description TODO(这里用一句话描述这个类的作用)
 *
 * @author liuqinghua
 * @date 2023-8-30
 */

import java.util.ArrayList;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JPanel;

import org.knowm.xchart.BitmapEncoder;
import org.knowm.xchart.BitmapEncoder.BitmapFormat;
import org.knowm.xchart.CategoryChart;
import org.knowm.xchart.CategoryChartBuilder;
import org.knowm.xchart.XChartPanel;

public class ChartDemo {

    public static void main(String[] args) throws IOException {
        // 准备示例数据
        List<String> products = new ArrayList<>();
        products.add("Product1");
        products.add("Product2");
        products.add("Product3");

        List<Double> sales = new ArrayList<>();
        sales.add(1000.0);
        sales.add(2000.0);
        sales.add(1500.0);

        // 创建柱状图对象
        CategoryChart chart = new CategoryChartBuilder().width(800).height(600).title("Sales Data")
                .xAxisTitle("Products").yAxisTitle("Sales").build();

        // 添加数据到图表中
        chart.addSeries("Sales", products, sales);

        // 创建图表面板
        JPanel chartPanel = new XChartPanel<>(chart);

        // 创建Swing应用程序窗口
        JFrame frame = new JFrame("Chart Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800, 600);

        // 将图表面板添加到窗口中
        frame.getContentPane().add(chartPanel);

        // 显示应用程序窗口
        frame.setVisible(true);
        BitmapEncoder.saveBitmap(chart, "d:/poi/aaa", BitmapFormat.PNG);
    }
}
